package generic;

/**
 * 在Java SE5之前，我们可以让这个类直接待有Object类型的对象：
 *
 * @author ChangLiang
 * @date 2021/2/1
 */
public class Holder2 {

    private Object a;

    public Holder2(Object a) {
        this.a = a;
    }

    public void set(Object a) {
        this.a = a;
    }

    public Object get() {
        return a;
    }

    public static void main(String[] args) {

        /**
         * 现在， Holder2可以存储任何类型的对象，在这个例子中，只用了一个Holder2对象，却先
         * 后三次存储了三种不同类型的对象。
         */

        Holder2 h2 = new Holder2(new Automobile());
        Automobile a = (Automobile) h2.get();

        h2.set("Not an Automobile");
        String s = (String) h2.get();

        h2.set(1); // Autoboxes to Integer
        Integer x = (Integer) h2.get();
    }
}
